iT邦幫忙

2023 iThome 鐵人賽

DAY 7
0
Odoo

Odoo 16 入門介紹系列 第 7

Model Field 類型

  • 分享至 

  • xImage
  •  

昨天說完最基本的model,今天先來簡單了解一下,model底下的東西有甚麼意思吧:

from odoo import models, fields
class LibraryBook(models.Model):
    # ...
    short_name = fields.Char('Short Title')
    notes = fields.Text('Internal Notes')
    state = fields.Selection(
        [('draft', 'Not Available'),
        ('available', 'Available'),
        ('lost', 'Lost')],
        'State')
    description = fields.Html('Description')
    cover = fields.Binary('Book Cover')
    out_of_print = fields.Boolean('Out of Print?')
    date_release = fields.Date('Release Date')
    date_updated = fields.Datetime('Last Updated')
    pages = fields.Integer('Number of Pages')
    reader_rating = fields.Float(
        'Reader Average Rating',
        digits=(14, 4), # Optional precision (total, decimals),
        )

Model Field 類型

+ Boolean:布林值,True 或 False。
+ Char:單行文字。
+ Float:浮點數。
+ Integer:整數。
+ Binary:二進位檔案,如圖片、附件。
+ Html:存儲 HTML 格式的多行文字。
+ Date:類似 Python 的 Date,格式為 YYYY-MM-DD。
+ Datetime:類似 Python 的 Datetime,格式為 YYYY-MM-DD HH:MM:SS。
+ Selection:下拉選單,如範例中的性別(gender),選項可以自定義。
+ Monetary:貨幣欄位,可以根據貨幣設定顯示符號。
+ Text:多行文字。
+ Many2one:多對一關聯,例如生活中的圖書館,通常會以 _id 為結尾,表示多本書對應到一間圖書館。
+ One2many:一對多關聯,例如圖書館中一間出版社跟書,通常以 _ids 為結尾,表示一間出版社可以出多本書。
+ Many2many:多對多關聯,例如作者跟書(teacher_ids),命名方式與 One2many 相同,以 _ids 結尾,                     表示多個作者對應到多本書。

Field 常用參數 (宣告Field時可以使用參數來控制屬性):

 + string:用戶在 Odoo 上看到的欄位名稱,如果未設定,則使用宣告的名稱。
 + help:描述欄位用途,開發者在開發者模式下可以看到,幫助使用者了解欄位。
 + invisible:布林值,控制欄位在 Odoo 上是否隱藏,預設為 False。
 + readonly:布林值,指定欄位是否只能讀取,設為 True 時表示無法寫入或修改。
 + required:布林值,指定欄位是否必填。
 + index:是否為欄位增加索引,預設為 False。
 + default:為欄位設定預設值。
 + states:通過字典方式控制在 UI 上顯示的 readonly、required 和 invisible 三個屬性。
 + groups:為欄位指定存取權限群組,當使用者不屬於允許的群組時,該欄位將不可見。
 + copy:在複製整份資料時,此欄位的值是否一併複製,大多數欄位預設為 True,但 One2many 欄位和計算欄        位預設為 False。
 + store:指定是否將欄位的值存儲在資料庫表中,預設為 True,只有計算欄位的 store 參數為 False。
 + compute:指定方法來計算欄位的值,具有此參數時,readonly=True,store=False,如範例中的                avg_score,透過 _compute_total 方法計算出該欄位的值,該值本身不會存儲在資料庫中,除非設定              store=True。
 + related:用於關聯其他資料,如範例中的 school_city,引用了 school_id 底下的 city 值。
 + company_dependent:根據不同的公司存取不同的值,例如收款帳戶。

今天簡單介紹了 Model Field 類型 , 明天我們來介紹 @api 種類跟介紹。


上一篇
odoo Model的介紹
下一篇
@api 種類跟介紹
系列文
Odoo 16 入門介紹30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言